perm filename TALK[P,JRA] blob
sn#622644 filedate 1981-11-07 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00004 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 difference between ai and cognitive ... engineering versus simulation.
C00006 00003 What to do til the doctor comes?
C00008 00004 acm
C00013 ENDMK
C⊗;
difference between ai and cognitive ... engineering versus simulation.
a little lisp as graphs
--------------------------------------------
Future languages:
There are several difficulties with contemporary computational languages:
1. procedural, not declarative
2. too low level --patterns, graphs
3. cultural -- too dependent on the culture and society of the originator
(typically western)
1. we should be able to explain WHAT we want done, and let the machines to more
of the detailed work. This is a "semantic notion" not syntactic. it is more
than a compiler translating to machine code. or such form fillers as
"the last word" the ntion requires understanding (not mind reading)
traces in ai: pattern-directed invocation/ goal-directed computing.
2. we need to begin developing a "spoken" language. i.e. languages that express
more, faster. consider the pain of having to deal with each other in written-
only form, (consider having to speak to each other in perfect gramatical
natural language). flexibility is needed.
furthermore "distance" is needed: we need to be able deal with abstraction;
to compute with trees and dogs and airplanes, ...
hopeful signs here: object-oriented programming. graphical languages.
3. This is much more difficult. how do we begin to imagine a "culture free"
language. given all the technology (better: ignoring all the technology)
where do you begin. are there universals. graphics? sounds?
What to do til the doctor comes?
assuming that one believs that the current situation is hopeless, but
hope is on the way, what can one do now?
1. don't learn to program. learn to think "algorithmically" --as psycholgists,
you should find a reasonable wealth of material in the ai/psychology field.
if you are interested in languages with staying power, and some substance,
learn lisp.
small group interaction --focused, finding knowledgeable people who will
talk (wccf) ieee. start sub-groups within own organ
work from the top down (taking substantial field to machines) don't just
hack.
--------------------------------------------
biblio
herbert simon's turing lecture CACM march 1976
article: university of chicago mag fall 81.
mindstorms
world challenge
weizenbaum
GEB
zen and the art
?Soul of a new machine --tracy kider?
lisp
lisp --winston
aip
august byte 1979 lsp --1981 smalltalk
acm
let me outline where i see lisp's power to lie, and then show what an
"ideal lisp env" hould/shouldnot have:
1. exploratory programming
ill-defined large complex, subject to change and modification
includes ai as well as systems programming.
in systems programming the issue has been assembly language
why: modification without re-compile (patch and continue)
analogous to ai
lisp as a systems language ≡ lisp as an assembly language: it is.
an assembly language for a different kind of machine (tree-oriented)
program structure is tree
primitve data structure is tree (arrays, stings, ...)
primeval ooze
the language is well-defined (ignore mathematical import --not the issue)
the issue is OS on small machines -- the os first, the smallness second
what do i want as an os.
a. at least what i have at the "machine level" --debuggability and control
here debuggability of objects.
recognize, select and construct objects.
construct ¬> os. storage management make new object
dynamic management of objects
b. bookkeeping of "context"
dynamic -hypothesizing: what happens if i change the world this way?
artistic ve. hacking --dabbing, exploring
static -my data is part of my context
change context → change data ... seems obvious, but goes against the
grain of existing os. the data tends to stay outside the context,
at worse, global (a monolithic file system)
at best, a hierarchical file system.
altenative: data is part of a context and we use a path to that context
to orient outselves. naming structure is local but contexts are
linkable.
compare lisp: garbage collection of data => collection of contexts.
therefore no file system : uniform address space, untile we know how
to build better machine models (432)
points
assembly language
object management
no file system as such
a programming environment
now the "small machine" question.
size
sophisitication doesn't cost that much
lisp's and tiny talk
tlc strings, vectors, lists, functions, windows, and on this
version files.
vm inside cp/m why? caues its there and small (os? as small as posssble
better as a library of routiines that you glue or discard at will --
poor will)
speed
faster that the basics (big shock! mu-lisp) on just the numeric stuff
compiler even faster --
features
emacs in lisp, compiler in lisp, good part of the system in lisp and
more every day.
final
dont do to micros, what we've done to mini's: copy maxi's
don't timesahre a z-80
--------------------------------------------
analogies:
an artist dabbing til he "gets it right" --hacking
a mathematician struggling to find a proof and then re-working the proof
software defies analogy
perlis: always top-down except the first time